package com.tchhy.provider.service

import com.tchhy.provider.data.common.BaseResp
import com.tchhy.provider.data.common.EmptyResp
import com.tchhy.provider.data.common.SmsVO
import com.tchhy.provider.data.partner.response.DataListRes
import com.tchhy.provider.data.profit.response.IncomeBreakdownRes
import com.tchhy.provider.data.profit.response.IncomeRes
import com.tchhy.provider.data.profit.response.SettlementIncomeRes
import com.tchyy.provider.data.BindBankInfo
import com.tchyy.provider.data.CashInfo
import com.tchyy.provider.data.CashRecord
import io.reactivex.Observable

/**
 * @author: pujialin
 * @date: 2020/10/15
 * @des: 收益服务接口
 *
 **/
interface ProfitService {
    fun sendCaptcha(smsVO: SmsVO): Observable<EmptyResp>
    //绑定的银行卡列表
    fun bankCardList(): Observable<BaseResp<List<BindBankInfo>>>

    //绑定银行卡
    fun bindBankCard(bindBankInfo: BindBankInfo): Observable<EmptyResp>

    //解绑定银行卡
    fun unbindBankCard(bankCardId:Long): Observable<EmptyResp>

    //提现申请
    fun cashApply(cashInfo: CashInfo): Observable<BaseResp<Boolean>>

    //提现记录
    fun cashRecordList(pageNum:Int, pageSize:Int): Observable<BaseResp<DataListRes<CashRecord>>>

    //我的收益
    fun myIncome(): Observable<BaseResp<IncomeRes>>

    //结算单列表
    fun billList(pageNum: Int, pageSize: Int): Observable<BaseResp<DataListRes<IncomeBreakdownRes>>>

    //结算详情
    fun settlementDetailsById(settlementId: Long): Observable<BaseResp<IncomeBreakdownRes>>

    //收益结算明细列表
    fun detailedListOfBenefits(
        pageNum: Int,
        pageSize: Int,
        startTime: String,
        endTime: String,
        serviceType: Int,
        serviceId: Long
    ): Observable<BaseResp<DataListRes<SettlementIncomeRes>>>

    //收益列表
    fun incomeBreakdownList(
        pageNum: Int,
        pageSize: Int,
        date: String?,
        type: Int?
    ): Observable<BaseResp<DataListRes<SettlementIncomeRes>>>
}